import { contextBridge, ipcRenderer } from 'electron';

contextBridge.exposeInMainWorld('WA', {
  translation: async (text: string, targetLanguage: string) => {
    return await ipcRenderer.invoke('translation', { text, targetLanguage });
  },
  onMessage: async (msg: string) => {
    await ipcRenderer.invoke('onMessage', { msg });
  },
  waitForElement: (selector: string) => {
    let interval = setInterval(checkForElement, 300); // 将interval声明提升到更高的作用域，但不在这里初始化它

    // 定义检查元素的函数
    function checkForElement() {
      try {
        // 添加try/catch来捕获在查询选择器时可能发生的任何错误
        const element = document.querySelector(selector);
        if (element) {
          clearInterval(interval); // 清除间隔计时器
          ipcRenderer.send(
            'pageLoadFinish',
            (localStorage.getItem('WACachedProfilePicEURL') || '').replace(
              /"/g,
              ''
            )
          );
        }
      } catch (error) {
        console.error('An error occurred while checking for element:', error);
        // 不reject错误，因为您希望继续运行，直到找到元素为止
      }
    }
    // 首次立即执行检查
    checkForElement();
  },
});
